package com.cheng.example.book.advise151.chap7;

import java.util.ArrayList;
import java.util.List;

class Base {
    public Number doStuff() {
        return 0;
    }
}

class Sub extends Base {
    @Override
    public Integer doStuff() {
        return 0;
    }
}


public class Client97 {


    public static void main(String[] args) {

        //数组支持协变
        Number[] n = new Integer[10];

        //编译不通过，泛型不支持协变
//    List<Number> list = new ArrayList<Integer>();

        //Number子类型(包括Number类型) 都可以是泛型参数类型
        List<? extends Number> list = new ArrayList<Integer>();

//        list.add(1);


    }
}


class Base1 {
    public void doStuff(Integer i) {

    }
}

class Sub1 extends Base1 {

    //    @Override
    public void doStuff(Number n) {

    }
}